/**
 * 发送get异步请求
 * @param {string} url 请求地址 
 * @param {object} params  请求参数
 * @param {function} callback  回调函数
 * @param {string|undefined} type  返回数据类型
 * @param {object} headers  自定义请求头
 * @return undefined
 */
function get(url,params,callback,type,headers){
    const xhr = new XMLHttpRequest
    xhr.onreadystatechange = () =>{
        if(xhr.readyState === 4){
            if(xhr.status === 200){
                let res = xhr.responseText
                if(type === 'json') res = JSON.parse(res)
                callback(res)
            }else{
                console.log('出现错误：',xhr.status)
            }
        }
    }
    let temp = []
    for(let key in params){
        temp.push(`${key}=${params[key]}`)
    }
    xhr.open('get',`${url}?${temp.join('&')}`)
    for(let key in headers){
        xhr.setRequestHeader(key,headers[key])
    }
    xhr.send(null)
}




/**
 * 发送post异步请求
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {function} callback  回调函数
 * @param {string} type 返回数据类型
 * @param {object} headers 自定义请求头
 * @return undefined 
 */
function post(url,params,callback,type,headers){
    const xhr = new XMLHttpRequest
    xhr.onreadystatechange = () =>{
        if(xhr.readyState === 4){
            if(xhr.status === 200){
                let res = xhr.responseText
                if(type === 'json') res = JSON.parse(res)
                callback(res)
            }else{
                console.log('出现错误：',xhr.status)
            }
        }
    }
    let test = []
    for(let key in params){
        test.push(`${key}=${params[key]}`)
    }
    xhr.open('post',`${url}`)
    xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
    for(let key in headers){
        xhr.setRequestHeader(key,headers[key])
    }
    xhr.send(test.join('&'))
}
